#include <iostream>
#include <algorithm> //算法有关的头文件
#include <vector> 

using namespace std;

/*
	如果实参>=0 成功
	    实参<0  失败
	失败的时候，提示如下错误：
	     terminate called after throwing an instance of 'int'
	     Aborted (core dumped)
		 中文：终止调用，函数抛出了整型异常实例
    原因：C++规定，如果一个函数使用throw抛出了某种异常，程序员必须使用try catch语句去捕获异常并处理，否则代码直接崩溃
          C++的throw，可以"逼着你处理异常"
*/
int fun(int n)
{
	if(n>=0)
		return 0; //成功
	else
		throw -1; //抛出整型异常，跟return -1有啥区别呢？
		//return -1;
}
int main()
{
	int ret;
	//函数调用成功
	//ret=fun(12);
	//函数调用失败
	ret=fun(-12);
	if(ret==0)
		cout<<"函数调用成功了"<<endl;
	else  //错误的写法：throw抛出某种异常，不是用if else判断来处理，必须使用try catch语句来处理
		cout<<"函数调用失败了"<<endl;
	
	cout<<"主函数继续往下执行"<<endl;
}